package Libs.Dados.Objetos
{
	import mx.collections.ArrayCollection;
	
	[RemoteClass(alias="Neturion.Dados.MovimentoFinanceiro")]	
	public class MovimentoFinanceiro extends Libs.Dados.Objetos.Movimento
	{
		private var _parcelado:Boolean;
        private var _quantidadeParcelas:int;
        private var _dataAceitacao:Date;
        private var _pessoaCredorDevedor:Libs.Dados.Objetos.Pessoa;
        private var _fonteGeradora:Libs.Dados.Objetos.FonteGeradora;
        private var _contaContabil:Libs.Dados.Objetos.ContaContabil;
        private var _setor:Libs.Dados.Objetos.Setor;
        private var _formaPagamento:Libs.Dados.Objetos.FormaPagamento;
        private var _listaTitulos:ArrayCollection;
        
		public function MovimentoFinanceiro()
		{
			this._listaTitulos = new ArrayCollection();
		}
		
		public function get Parcelado():Boolean
        {
            return this._parcelado;
        }

        public function get QuantidadeParcelas():int
        {
            return this._quantidadeParcelas;
        }

        public function get DataAceitacao():Date
        {
        	var data:Date = null;
        	if (this._dataAceitacao != null)
        	{
        		var dia:Number = _dataAceitacao.dateUTC; 
	        	var mes:Number = _dataAceitacao.monthUTC; 
	        	var ano:Number = _dataAceitacao.fullYearUTC;
	        	data = new Date(ano,mes,dia);
        	}
            return this._dataAceitacao = data;
        }

        public function get PessoaCredorDevedor():Libs.Dados.Objetos.Pessoa
        {
            return this._pessoaCredorDevedor;
        }

        public function get FonteGeradora():Libs.Dados.Objetos.FonteGeradora
        {
            return this._fonteGeradora;
        }

        public function get ContaContabil():Libs.Dados.Objetos.ContaContabil
        {
            return this._contaContabil;
        }

        public function get Setor():Libs.Dados.Objetos.Setor
        {
            return this._setor;
        }

        public function get FormaPagamento():Libs.Dados.Objetos.FormaPagamento
        {
            return this._formaPagamento;
        }

        public function get ListaTitulos():ArrayCollection
        {
            return this._listaTitulos;
        }


///////////////////////////////////////////////

		public function set Parcelado(value:Boolean):void
        {
            this._parcelado = value;
        }

        public function set QuantidadeParcelas(value:int):void
        {
            this._quantidadeParcelas = value;
        }

        public function set DataAceitacao(value:Date):void
        {
            this._dataAceitacao = value;
        }

        public function set PessoaCredorDevedor(value:Libs.Dados.Objetos.Pessoa):void
        {
            this._pessoaCredorDevedor = value;
        }

        public function set FonteGeradora(value:Libs.Dados.Objetos.FonteGeradora):void
        {
            this._fonteGeradora = value;
        }

        public function set ContaContabil(value:Libs.Dados.Objetos.ContaContabil):void
        {
            this._contaContabil = value;
        }

        public function set Setor(value:Libs.Dados.Objetos.Setor):void
        {
            this._setor = value;
        }

        public function set FormaPagamento(value:Libs.Dados.Objetos.FormaPagamento):void
        {
            this._formaPagamento = value;
        }

        public function set ListaTitulos(value:ArrayCollection):void
        {
            this._listaTitulos = value;
        }
        
////////////////////////////////////////////
		public function AdicionarTitulos(titulo:Libs.Dados.Objetos.Titulo):void
		{
			titulo.MovimentoFinanceiro = this;
			ListaTitulos.addItem(titulo);
		}
		
		public function RemoverPagamentos(titulo:Libs.Dados.Objetos.Titulo):void
		{
			var index:int = ListaTitulos.getItemIndex(titulo);
			ListaTitulos.removeItemAt(index);
		}        
	}
}